home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-10-26 | 4.9 KB | 138 lines | [TEXT/ScoM] |
- FREQUENCY CALCULATIONS
-
- > In regards to Mary's message and your response about Binarrual Beats, I
- >have done some work with the SCOM system in that area. Remember last
- >spring when I was asking you 50 questions a day? Many were concenring
- >tunning issues for this purpose initially. A while back I made an Excel
- >spreadsheet which simplifies working with binarrual beat math. I have
- >attached it here for your reference. Feel free to post it if you would
- >like. It assumes 12 TET. It also assumes that the best way to create a
- >beat is to bend the two carriers equal distances (x/2)from the intial
- >carrier instead of mixing the inital carrier and one that is shifted X Hz.
- >This is because the perception of the pitch of the set of two closely tuned
- >frequencies is the average of the two. In other words if you want a 10 Hz
- >BB, and you are using A 440 as the carrier, it is better to use 435 and 445
- >instead of 440 and 450 for example...
- > Perhaps a good solution would be to write a funciton in which the user
- >specified two varibles: 1.) the pitch of the average carrier (either in Hz
- >or as a note symbol, though i could see things getting complicated in other
- >than 12 TET if it were specified as a note symbol which was dependent upon
- >tonality), and 2.) the desired frequency of the of the binaural beat
- >(specfied in Hz or by a further function).
- >
- > Given user input of this kind, the funciton could generate two MIDI
- >channels which contained MIDI Note On's and Pitch Bend values for the
- >creation of the beats. One channel would automatically be panned hard left,
- >and the other hard right. This may be complex to do in the SCOM system
- >because it obvously reaches across many of the organizational paradigms of
- >the SCOM system. But as with the rest of the fucntions, perhaps a sort of
- >general template function could be written that would gerate all of the
- >necessary steps...
-
- The score below does just that, and you can add pannings to the voice-base
- and voice-beat using controller class and 0 and 127 as panning values.
- Here is how to add panning (and have your synths controller setup defined
- first).
-
- ; basefreq calculation
-
- ; ok, lets have 440hz as basefreq which is a 4
-
- (setq basefreq 440)
-
- ; then calculate the cent difference between 440 hz and 450 hz
-
- ; (freq-to-cent (+ basefreq 10) basefreq)
-
- ; then define a tonality 10hz-alpha so by converting a cent list of 0 and the
- ; above value to a frequency ratio list
-
- ; now we have a tonality that if you activate it in basenote a 4 then
- ; the two notes on channels 1 and 2 panned left and right will produce
- ; frequencies 440 hz and 450 hz (now you have to tweak only 4096 to get
- ; the pitch bend responce of your synth to work properly).
-
- ; the value 10 here is the required beat frequency
-
- (create-tonality 10hz-alpha
- (cents-to-freqs (list 0 (freq-to-cent (+ basefreq 10) basefreq))))
-
- (def-orchestra 'orchestra
- all-instruments (voice)
- voice (voice-base voice-beat)
- )
-
- (def-section-timesheet sect-a
- ;
- ; timesheet
- ;
- with 1/1 ;1 9 17 25 33
- ; +---!---+---!---+---!---+---!---+---!
- tonality "." (activate-tonality (10hz-alpha a 4 4096))
- voice "----------------"
- ;
- beat 1/1 ; !---!---!---!---!
- voice-base "-" '(a) with '(85 75 80 70)
- voice-beat "-" '(b) with '(85 75 80 70)
- )
-
- (def-section sect-a
- voice-base
- channel 1
- controller (mu80-controllers
- panning '((127)))
-
- voice-beat
- channel 2
- controller (mu80-controllers
- panning '((0)))
-
- )
-
- (def-tempo 120)
-
- ; note that nil here makes it saving the file in the same folder that the
- ; source code is in.
-
- (play-file-p nil
- all-instruments '(sect-a)
- )
-
- ; since we know that a 4 = 440 hz
- ; we can calculate a multiplicator value by
- ; (/ 440 (note-to-freq 'a 4))
- ; now, when we multiplicate the freq returned by note-to-freq it
- ; is calibrated to a 4 = 440
-
- ; (* (/ 440 (note-to-freq 'a 4)) (note-to-freq 'a 4))
- ; --> 439.99999999999994 ; quite passable approximation
-
- ; lets test it, what is the frequecy of a 5
-
- ; (* (/ 440 (note-to-freq 'a 4)) (note-to-freq 'a 5))
- ; --> 879.9999999999999 ; the frequency is doubled, works fine, and also
- ; notes in between should work ok, too
-
- ; lets define it a function
-
- (defun note-to-absolute-freq (note octave)
- (* (/ 440 (note-to-freq 'a 4)) (note-to-freq note octave)))
-
- ; now you can call it this way
-
- (note-to-absolute-freq 'c 4)
- --> 261.6255653005986
-
- (note-to-absolute-freq 'e 1)
- --> 41.20344461410874
-
- ; use this to calculate the base frequency in the above example
-
- ; (setq basefreq (note-to-absolute-freq 'e 1))
-
- ; and then activate the tonality on the same base note and the beat
- ; frequencies should be working, check out that your synth is transposed
- ; to a proper octave, since if you play it on a lower octave then the
- ; beat frequency will be 5hz, or octave higher it will be 20hz, so
- ; have some happy tweaking...
-